package tests;

import java.awt.Point;

import junit.framework.Assert;
import junit.framework.TestCase;
import aplicacion.modelo.Celda;
import aplicacion.modelo.CeldasVecinas;
import aplicacion.modelo.Juego;

public class CeldaTest extends TestCase {
//	NO SE USA NUNCA
	//private static int MAXIMO=5;
	protected void setUp() throws Exception {
		super.setUp();
		Juego.reinicializarJuego();
	}

	public void testGetPosicion(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		CeldaTest.assertEquals(posicion,celda.getPosicion());
	}
	
	public void testNoFueVisitada(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		CeldaTest.assertTrue(!celda.estaVisitada());		
	}
	
	public void testCeldasVecinas(){	
		Point posicion=new Point(1,1);
		Celda celda=new Celda(posicion);
		CeldasVecinas celdasVecinas=celda.obtenerCeldasVecinas();
		Assert.assertTrue(celdasVecinas.size()==4);
	}
	
	public void testCeldasVecinasConMenosDeCuatroVecinas(){		
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		CeldasVecinas celdasVecinas=celda.obtenerCeldasVecinas();
		Assert.assertTrue(celdasVecinas.size()==2);
	}
	
	public void testFueVisitada(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		celda.setVisitada(true);
		CeldaTest.assertTrue(celda.estaVisitada());		
	}
	
	public void testRecorrerNoRecorrida(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		CeldaTest.assertEquals(posicion,celda.recorrer());
		CeldaTest.assertEquals(celda.getPuntosOtorgados(),celda.getPuntaje());
		CeldaTest.assertTrue(celda.estaVisitada());
	}
	
	public void testRecorrerRecorrida(){
		Point posicion=new Point(0,0);
		Celda celda=new Celda(posicion);
		celda.recorrer();
		int puntos=celda.getPuntaje();
		CeldaTest.assertEquals(puntos,celda.getPuntaje());
		CeldaTest.assertEquals(posicion,celda.recorrer());
		CeldaTest.assertTrue(celda.estaVisitada());
	}
	
	public void testAumentarPuntaje(){
		Point posicion=new Point(0,0);
		int puntos=100;
		Celda celda=new Celda(posicion);
		celda.aumentarPuntaje(puntos);
		CeldaTest.assertEquals(puntos, celda.getPuntaje());
	}
	
}
